-
Notifications
You must be signed in to change notification settings - Fork 134
feat: introduce GatewayConfig CRD for gateway-scoped configuration #1623
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: main
Are you sure you want to change the base?
Conversation
d26095e to
8984f5b
Compare
mathetake
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thank you for taking a shot at this!
nacx
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Just reviewed the API for now and left one comment.
Apart from that, this GatewayConfig object is only relevant for Kubernets, but not in standalone modes (at least for now). Would it make sense to convey that in the API? For example, the Envoy Gateaay infrastructure resources have the "provider" concept and settings are under a kubernetes config know.
Something like:
apiVersion: aigateway.envoyproxy.io/v1alpha1
kind: GatewayConfig
metadata:
name: comprehensive-config
namespace: default
spec:
kubernetes:
extProc:
env:
(...)
or
apiVersion: aigateway.envoyproxy.io/v1alpha1
kind: GatewayConfig
metadata:
name: comprehensive-config
namespace: default
spec:
extProc:
kubernetes:
env:
(...)
WDYT?
| // ExtProc defines the configuration for the external processor container. | ||
| // | ||
| // +optional | ||
| ExtProc *GatewayConfigExtProc `json:"extProc,omitempty"` |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
What about using the EnvoyGatway's KubernetesContainerSpec type instead?
This way we already get all the config fields in the container, and better align with a known API users may be already using to configure the EnvoyProxy resource.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This actually makes more sense to use the KubernetesContainerSpec from EnvoyGatway's . I'll update this.
And for the above change I'm not sure if I understand this, if this gatewayconfig is only being used in kubernetes or there are plans to create other provider types apart from kubernetes?
This commit adds the GatewayConfig custom resource definition (CRD) to manage configuration for the AI Gateway external processor. It allows users to define environment variables and resource requirements at the gateway level, enhancing flexibility and reusability across multiple gateways. The AIGatewayRoute's resource configuration is now deprecated in favor of this new approach. Additionally, the GatewayConfig controller is implemented to handle the lifecycle of GatewayConfig resources, including finalizer management to prevent accidental deletions while still referenced by Gateways. Documentation updates are included to reflect the new configuration options and migration guidance from the deprecated route-level settings. Signed-off-by: Shabab Qaisar <[email protected]> Signed-off-by: Shabab Qaisar <[email protected]>
This commit refactors the GatewayConfig controller to eliminate finalizer management, simplifying the lifecycle handling of GatewayConfig resources. The controller now focuses on notifying referencing Gateways of changes without blocking deletion based on references. Additionally, the documentation has been updated to reflect these changes, including the removal of finalizer behavior descriptions from the API and capability documentation. Signed-off-by: Shabab Qaisar <[email protected]> Signed-off-by: Shabab Qaisar <[email protected]>
This commit refactors the GatewayConfig controller to eliminate finalizer management, simplifying the lifecycle handling of GatewayConfig resources. The controller now focuses on notifying referencing Gateways of changes without blocking deletion based on references. Additionally, the documentation has been updated to reflect these changes, including the removal of finalizer behavior descriptions from the API and capability documentation. Signed-off-by: Shabab Qaisar <[email protected]> Signed-off-by: Shabab Qaisar <[email protected]>
Thankyou for quickly reviewing the changes. I've resolved all of them. Please take a look. |
Description
Introduce GatewayConfig CRD for gateway-scoped configuration of the external processor. Adds controller lifecycle handling (including finalizer management), deprecates AIGatewayRoute-level resource configuration in favor of
GatewayConfig, and updates docs with migration guidance and new options.Example
Related Issues/PRs (if applicable)
Fixes [1]
Special notes for reviewers (if applicable)
Docs, controller, and CRD changes included; route-level resources are deprecated—see migration guidance in docs.
1: #1552